package com.cwx.mychat.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cwx.mychat.entity.dto.TokenUserInfoDto;
import com.cwx.mychat.entity.po.ChatMessage;
import com.cwx.mychat.exception.BusinessException;
import com.cwx.mychat.utils.R;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

/**
 * 作者： cwx
 * 时间： 2024/9/21 14:33
 * 版本： 1.0
 * 注释：
 */
public interface ChatMessageService extends IService<ChatMessage> {
    /**
     * 发送消息
     * @param chatMessage
     * @return
     */
    R sendMessage(ChatMessage chatMessage, TokenUserInfoDto tokenUserInfoDto) throws BusinessException;

    /**
     * 发送文件
     * @param file
     * @param tokenUserInfoDto
     * @return
     */
    R sendFile(MultipartFile file, TokenUserInfoDto tokenUserInfoDto, Long messageId) throws BusinessException;

    /**
     * 下载文件
     * @param tokenUserInfoDto
     * @param messageId
     * @return
     */
    R saveMessageFile(TokenUserInfoDto tokenUserInfoDto, Long messageId, HttpServletResponse response);

    /**
     * 保存消息
     * @param chatMessage
     * @param tokenUserInfoDto
     * @return
     */
    int saveMessage(ChatMessage chatMessage, TokenUserInfoDto tokenUserInfoDto);
}
